home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / pc / DirectX SDK / DXSDK / samples / Multimedia / DirectShow / Players / PlayWnd / playwnd.h < prev    next >
Encoding:
Text File  |  2001-10-08  |  3.7 KB  |  113 lines

  1. //------------------------------------------------------------------------------
  2. // File: PlayWnd.h
  3. //
  4. // Desc: DirectShow sample code - header file for video in window movie
  5. //       player application.
  6. //
  7. // Copyright (c) 1998-2001 Microsoft Corporation.  All rights reserved.
  8. //------------------------------------------------------------------------------
  9.  
  10.  
  11. //
  12. // Function prototypes
  13. //
  14. HRESULT InitPlayerWindow(void);
  15. HRESULT InitVideoWindow(int nMultiplier, int nDivider);
  16. HRESULT HandleGraphEvent(void);
  17. HRESULT StepOneFrame(void);
  18. HRESULT StepFrames(int nFramesToStep);
  19. HRESULT ModifyRate(double dRateAdjust);
  20. HRESULT SetRate(double dRate);
  21.  
  22. BOOL GetFrameStepInterface(void);
  23. BOOL GetClipFileName(LPTSTR szName);
  24.  
  25. void PaintAudioWindow(void);
  26. void MoveVideoWindow(void);
  27. void CheckVisibility(void);
  28. void CloseInterfaces(void);
  29.  
  30. void OpenClip(void);
  31. void PauseClip(void);
  32. void StopClip(void);
  33. void CloseClip(void);
  34.  
  35. void UpdateMainTitle(void);
  36. void CheckSizeMenu(WPARAM wParam);
  37. void EnablePlaybackMenu(BOOL bEnable);
  38. void GetFilename(TCHAR *pszFull, TCHAR *pszFile);
  39. void Msg(TCHAR *szFormat, ...);
  40.  
  41. HRESULT AddGraphToRot(IUnknown *pUnkGraph, DWORD *pdwRegister);
  42. void RemoveGraphFromRot(DWORD pdwRegister);
  43.  
  44. //
  45. // Constants
  46. //
  47. #define VOLUME_FULL     0L
  48. #define VOLUME_SILENCE  -10000L
  49.  
  50. // File filter for OpenFile dialog
  51. #define FILE_FILTER_TEXT \
  52.     TEXT("Video Files (*.avi; *.qt; *.mov; *.mpg; *.mpeg; *.m1v)\0*.avi; *.qt; *.mov; *.mpg; *.mpeg; *.m1v\0")\
  53.     TEXT("Audio files (*.wav; *.mpa; *.mp2; *.mp3; *.au; *.aif; *.aiff; *.snd)\0*.wav; *.mpa; *.mp2; *.mp3; *.au; *.aif; *.aiff; *.snd\0")\
  54.     TEXT("MIDI Files (*.mid, *.midi, *.rmi)\0*.mid; *.midi; *.rmi\0") \
  55.     TEXT("Image Files (*.jpg, *.bmp, *.gif, *.tga)\0*.jpg; *.bmp; *.gif; *.tga\0") \
  56.     TEXT("All Files (*.*)\0*.*;\0\0")
  57.  
  58. // Begin default media search at root directory
  59. #define DEFAULT_MEDIA_PATH  TEXT("\\\0")
  60.  
  61. // Defaults used with audio-only files
  62. #define DEFAULT_AUDIO_WIDTH     240
  63. #define DEFAULT_AUDIO_HEIGHT    120
  64. #define DEFAULT_VIDEO_WIDTH     320
  65. #define DEFAULT_VIDEO_HEIGHT    240
  66. #define MINIMUM_VIDEO_WIDTH     200
  67. #define MINIMUM_VIDEO_HEIGHT    120
  68.  
  69. #define APPLICATIONNAME TEXT("PlayWnd Media Player")
  70. #define CLASSNAME       TEXT("PlayWndMediaPlayer")
  71.  
  72. #define WM_GRAPHNOTIFY  WM_USER+13
  73.  
  74. enum PLAYSTATE {Stopped, Paused, Running, Init};
  75.  
  76. //
  77. // Macros
  78. //
  79. #define SAFE_RELEASE(x) { if (x) x->Release(); x = NULL; }
  80.  
  81. #define JIF(x) if (FAILED(hr=(x))) \
  82.     {Msg(TEXT("FAILED(hr=0x%x) in ") TEXT(#x) TEXT("\n"), hr); return hr;}
  83.  
  84. #define LIF(x) if (FAILED(hr=(x))) \
  85.     {Msg(TEXT("FAILED(hr=0x%x) in ") TEXT(#x) TEXT("\n"), hr);}
  86.  
  87. //
  88. // Resource constants
  89. //
  90. #define IDI_PLAYWND                     100
  91. #define IDR_MENU                        101
  92. #define IDD_ABOUTBOX                    200
  93. #define ID_FILE_OPENCLIP                40001
  94. #define ID_FILE_EXIT                    40002
  95. #define ID_FILE_PAUSE                   40003
  96. #define ID_FILE_STOP                    40004
  97. #define ID_FILE_CLOSE                   40005
  98. #define ID_FILE_MUTE                    40006
  99. #define ID_FILE_FULLSCREEN              40007
  100. #define ID_FILE_SIZE_NORMAL             40008
  101. #define ID_FILE_SIZE_HALF               40009
  102. #define ID_FILE_SIZE_DOUBLE             40010
  103. #define ID_FILE_SIZE_QUARTER            40011
  104. #define ID_FILE_SIZE_THREEQUARTER       40012
  105. #define ID_HELP_ABOUT                   40014
  106. #define ID_RATE_INCREASE                40020
  107. #define ID_RATE_DECREASE                40021
  108. #define ID_RATE_NORMAL                  40022
  109. #define ID_RATE_DOUBLE                  40023
  110. #define ID_RATE_HALF                    40024
  111. #define ID_SINGLE_STEP                  40025
  112.  
  113.